import React, { Component } from 'react'
// prop-types就是对react组件中props对象中的变量进行类型检测
// cnpm i -S prop-types
import PropTypes from 'prop-types'
// 引入nanoid，随机id插件，是一个函数，会返回一个字符串
import { nanoid } from 'nanoid'

export default class Header extends Component {
  // 对接收的props进行：类型、必要性的限制
  static propTypes = {
    addTodo: PropTypes.func.isRequired
  }
  // 输入框回车事件
  handleKeyUp = (e) => {
    if (e.keyCode !== 13) {
      return false
    } else {
      if (e.target.value.trim() === '') {
        alert('输入不能为空')
        return false
      } else {
        // 子向父传参
        // 准备好一个todo对象
        const todoObj = { id: nanoid(), name: e.target.value, done: false }
        console.log(todoObj, 'Header向App传递的数据');
        // 将todoObj传递给App
        this.props.addTodo(todoObj)
        // 清空输入框
        e.target.value = ''
      }
    }
  }
  render() {
    return (
      <div className="todo-header">
        <input onKeyUp={this.handleKeyUp} type="text" placeholder="请输入你的任务名称，按回车键确认" />
      </div>
    )
  }
}
